package mes.kanban.util;



import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;

import org.springframework.util.StringUtils;

public class ConmmonJpaToVoOrMapToVo {
	 /**
	  * jpa to vo 
	  * czg--2015年9月10日上午11:28:01
	 * @param <T>
	 * @throws Exception 
	  */
	 public  void jpaToVo(Object jpa,Object vo) throws Exception{
		Field[] japf= jpa.getClass().getDeclaredFields();
 		for(Field f : japf) {
 			PropertyDescriptor jpd = new PropertyDescriptor(f.getName(), jpa.getClass());
 		    Method jrM = jpd.getReadMethod();//获得读方法
 		    System.out.println(jrM.invoke(jpa));
 		    if(!StringUtils.isEmpty(jrM.invoke(jpa))&&"null".equals(jrM.invoke(jpa).toString())){
 		    	PropertyDescriptor pd = new PropertyDescriptor(f.getName(), vo.getClass());
 		    	Method vwM = pd.getWriteMethod();//获得写方法
 		    	vwM.invoke(vo, jrM.invoke(jpa)); 
 		    }
	    }
	 }
	/**
	 * map to vo
	 * czg--2015年9月10日上午11:28:05
	 */
	 public  void mapToVo(HashMap<String,Object> hm,Object vo) throws Exception{
			Field[] japf= vo.getClass().getDeclaredFields();
			if(hm.size()>0){
		 		for(Field f : japf) {
		 			if(!StringUtils.isEmpty(hm.get(f.getName()))){
				 		PropertyDescriptor pd = new PropertyDescriptor(f.getName(), vo.getClass());
					    Method vwM = pd.getWriteMethod();//获得写方法
					    vwM.invoke(vo,hm.get(f.getName())); 
		 			}
			    }
			}
		 }
	 
}
